package com.zmn.mcc.business.interfaces.module;

import com.zmn.common.dictionary.GlobalDict;
import com.zmn.common.dto2.ResponseDTO;
import com.zmn.mcc.model.entity.module.McModule;

import java.util.List;

/**
 * @author heguanghua
 * @since 2020/04/14 21:56
 */
public interface ModuleBService {

    /**
     * 取得全部系统的模块列表
     * @param status
     * @param level 返回的层级，0或null表示不限
     * @return
     */
    List<McModule> listModule(Integer level, Integer status);

    /**
     * 取得指定系统的模块列表
     * @param sysId 系统ID
     * @param level 返回的层级，0或null表示不限
     * @param status
     * @return
     */
    List<McModule> listModule(Integer sysId, Integer level, Integer status);

    /**
     * 取得全部系统的层级模块列表，默认不包括停用模块
     * @param level 返回的层级，0或null表示不限
     * @param status
     * @return
     */
    List<McModule> listModuleTree(Integer level, Integer status);

    /**
     * 取得层级模块列表，默认不包括停用模块
     * @param sysId 系统ID
     * @param level 返回的层级，0或null表示不限
     * @param status
     * @return
     */
    List<McModule> listModuleTree(Integer sysId, Integer level, Integer status);
    
    /**
     * 新增模块
     * @param module
     * @return
     */
    ResponseDTO addModule(McModule module);

    /**
     * 修改模块
     * @param module
     * @return
     */
    ResponseDTO modifyModule(McModule module);
}
